Detecting Optimal Termination Conditions of Logic Programs
نویسندگان
چکیده
In this paper, we begin with an approach to non-termination inference of logic programs. Our framework relies on an extension of the Lifting Theorem, where some specific argument positions can be instantiated while others are generalized. Atomic left looping queries are generated bottom-up from selected subsets of the binary unfoldings of the program of interest. Then non-termination inference is tailored to attempt proofs of optimality of left termination conditions computed by a termination inference tool. For each class of atomic queries not covered by a termination condition, the aim is to ensure the existence of one query from this class which leads to an infinite search tree. An experimental evaluation is reported. When termination and non-termination analysis produce complementary results for a logic procedure, they induce a characterization of the operational behavior of the logic procedure with respect to the left most selection rule and the language used to describe sets of atomic queries.
منابع مشابه
Termination Analysis of Tabled Logic Programs Using Mode and Type Information
Tabled logic programming is receiving increasing attention in our community. It avoids many of the shortcomings of SLD(NF) execution and provides a more exible and often extremely eecient execution mechanism for logic programs. In particular, tabled execution of logic programs terminates more often than execution based on SLD-resolution. So, if a program can be proven to terminate under SLD-res...
متن کاملAn Improved Non-Termination Criterion for Binary Constraint Logic Programs
On one hand, termination analysis of logic programs is now a fairly established research topic within the logic programming community. On the other hand, non-termination analysis seems to remain a much less attractive subject. If we divide this line of research into two kinds of approaches: dynamic versus static analysis, this paper belongs to the latter. It proposes a criterion for detecting n...
متن کاملA non-termination criterion for binary constraint logic programs
On the one hand, termination analysis of logic programs is now a fairly established research topic within the logic programming community. On the other hand, non-termination analysis seems to remain a much less attractive subject. If we divide this line of research into two kinds of approaches: dynamic versus static analysis, this paper belongs to the latter. It proposes a criterion for detecti...
متن کاملQuasi-Termination Analysis of Logic Programs Using Size-Change Graphs
A logic program is quasi-terminating when only a finite number of different calls—up to variable renaming—are derivable from any given goal. Ensuring the quasi-termination of programs w.r.t. a class of goals is a relevant problem in several areas, like tabled evaluation or partial evaluation, where quasi-termination implies the full termination of the specialization process. In this work, we ad...
متن کاملApplying Static Analysis Techniques for Inferring Termination Conditions of Logic Programs
We present the implementation of cTI, a system for universal left-termination inference of logic programs, which heavily relies on static analysis techniques. Termination inference generalizes termination analysis/checking. Traditionally, a termination analyzer tries to prove that a given class of queries terminates. This class must be provided to the system, requiring user annotations. With te...
متن کامل